The present invention is directed to managing resource utilization in a computing environment and more particularly to managing usage of computing resources in a virtual machine computing environment.
A constant drive exists to maximize the efficiency of computing environments. The efficacy by relying solely upon a computing environment's operating system (O/S) for resource management has become imprudent in many situations. Many current computing environments rely upon object-based systems in which a virtual machine (VM) facilitates operation upon an application layer by a hardware layer. An example of a VM is known as a Java Virtual machine (JVM). A typical VM consists of a software layer operating upon a hardware layer that includes an O/S layer in data communication with a hardware layer. The VM virtualizes the available resources of the host platform to thereby facilitate communication between an application layer and the hardware layer vis-a-vis one or more O/Ss resident in the O/S layer. In this manner, the VM provides an abstraction of a complete computer system to higher-level software, e.g., application software. Many advantages are provided by the VM, including multiplexing the use of the hardware layer among two or more software applications and/or multiple instances of the same software application. As a result, it is realized that the VM manages a computing environment's resources. There have been many prior art attempts to improve management of a computing environment's resources of an object-based system.
In U.S. Pat. No. 7,073,177 to Foote et al., which is assigned to assignee of the present application, disclosed are methods and apparatuses for managing resources that includes a resource manager regulating resource consumption of several resource entities, each of which is capable of consuming resources. The resource manager tracks the availability of such resources and determines whether a resource is critically short or reaches a particular usage level. When a resource becomes critically short or reaches a particular usage level, the resource manager selects one or more resource entities based on one or more criteria. For example, a resource entity which has the least restrictive resource usage policy or state is selected. The resource manager then requests that the selected resource entity changes resource usage state to a more restrictive state. When resource usage reaches an acceptable level, the resource manager may also inform each resource entity (or previously selected resource entities) establish a less restrictive resource consumption state.
United States patent publication number 2006/0200820 to Cherkasova et al., discloses a method that includes observing communication from a virtual machine (VM) to a domain in which a device driver for a shared resource resides. The method further comprises determining, based on the observed communication, CPU utilization of the domain that is attributable to the VM. According to at least one embodiment, a system comprises a Central Processing Unit (CPU), Virtual Machines (VMs), and a domain in which a device driver for a shared resource resides. The domain is operable to receive requests from the VMs for access to the shared resource. The system further comprises a CPU utilization monitor operable to determine an amount of CPU utilization of the domain in processing the received requests that is attributable to each of the VMs.
United States patent publication number 2006/0212871 to Cook discloses a method, system, and article of manufacture, wherein a first indicator indicates a recommended resource requirement for an application is read. A second indicator indicates a permissible flexibility in the recommended resource requirement for the application is read. The application is allocated to a processing entity of a plurality of processing entities based the first and the second indicators
A need exists, therefore, to provide improved resource management of object-based computing environments.